import {CodePlatformMethodMap} from "./constant";


/**
 * 条件编译支持的平台类型
 *
 * - VUE2: uni-app js引擎版用于区分vue2和3
 * - VUE3: uni-app js引擎版用于区分vue2和3，HBuilderX 3.2.0+
 * - UNI-APP-X: 用于区分是否是uni-app x项目，HBuilderX 3.9.0+
 * - uniVersion: 用于区分编译器的版本，HBuilderX 3.9.0+
 * - APP: App
 * - APP-PLUS: uni-app js引擎版编译为App时
 * - APP-NVUE: App nvue 页面
 * - APP-ANDROID: App Android 平台
 * - APP-IOS: App iOS 平台
 * - APP-HARMONY: App HarmonyOS Next 平台
 * - H5: H5（推荐使用 WEB）
 * - WEB: web（同H5），HBuilderX 3.6.3+
 * - MP-WEIXIN: 微信小程序
 * - MP-ALIPAY: 支付宝小程序
 * - MP-BAIDU: 百度小程序
 * - MP-TOUTIAO: 抖音小程序
 * - MP-LARK: 飞书小程序
 * - MP-QQ: QQ小程序
 * - MP-KUAISHOU: 快手小程序
 * - MP-JD: 京东小程序
 * - MP-360: 360小程序
 * - MP-HARMONY: 鸿蒙元服务，HBuilderX 4.34+
 * - MP-XHS: 小红书小程序
 * - MP: 微信小程序/支付宝小程序/百度小程序/抖音小程序/飞书小程序/QQ小程序/360小程序/鸿蒙元服务
 * - QUICKAPP-WEBVIEW: 快应用通用(包含联盟、华为)
 * - QUICKAPP-WEBVIEW-UNION: 快应用联盟
 * - QUICKAPP-WEBVIEW-HUAWEI: 快应用华为
 */
export type CodePlatform =
  'VUE2'
  | 'VUE3'
  | 'UNI-APP-X'
  | 'APP'
  | 'APP-PLUS'
  | 'APP-NVUE'
  | 'APP-ANDROID'
  | 'APP-IOS'
  | 'APP-HARMONY'
  | 'WEB'
  | 'MP-WEIXIN'
  | 'MP-ALIPAY'
  | 'MP-BAIDU'
  | 'MP-TOUTIAO'
  | 'MP-LARK'
  | 'MP-QQ'
  | 'MP-KUAISHOU'
  | 'MP-JD'
  | 'MP-360'
  | 'MP-HARMONY'
  | 'MP-XHS'
  | 'MP'
  | 'QUICKAPP-WEBVIEW'
  | 'QUICKAPP-WEBVIEW-UNION'
  | 'QUICKAPP-WEBVIEW-HUAWEI';

/**
 * 条件编译支持的平台类型，驼峰，排除vue2、vue3、uniAppX
 */
export type CodePlatformHumpMethod = keyof typeof CodePlatformMethodMap;

/**
 * 条件编译支持的平台类型，排除VUE2、VUE3、UNI-APP-X、APP-ANDROID、APP-IOS、APP-HARMONY
 */
export type CodePlatformMethod = Exclude<CodePlatform, 'VUE2' | 'VUE3' | 'UNI-APP-X' | 'APP-ANDROID' | 'APP-IOS' | 'APP-HARMONY'>;

/**
 * 条件编译支持的平台类型_通用
 */
export type CodePlatformCommon =
  | 'UNI-APP-X'
  | 'APP-PLUS'
  | 'APP-NVUE'
  | 'WEB'
  | 'MP-WEIXIN'
  | 'MP-ALIPAY'
  | 'MP-BAIDU'
  | 'MP-TOUTIAO'
  | 'MP-LARK'
  | 'MP-QQ'
  | 'MP-KUAISHOU'
  | 'MP-JD'
  | 'MP-360'
  | 'MP-HARMONY'
  | 'MP-XHS'
  | 'QUICKAPP-WEBVIEW-UNION'
  | 'QUICKAPP-WEBVIEW-HUAWEI';

/**
 * uni-app支持的平台类型
 */
export type UniAppPlatform =
  | 'app'
  | 'web'
  | 'mp-weixin'
  | 'mp-alipay'
  | 'mp-baidu'
  | 'mp-toutiao'
  | 'mp-lark'
  | 'mp-qq'
  | 'mp-kuaishou'
  | 'mp-jd'
  | 'mp-360'
  | 'mp-harmony'
  | 'quickapp-webview'
  | 'quickapp-webview-union'
  | 'quickapp-webview-huawei';

/**
 * vue版本类型
 */
export type VueVersion = 'VUE2' | 'VUE3';
